WINDOW 2," * * * * * M a x i D A T V 2 . 0 2 * * * * *",,16,1
WIDTH 78
ON BREAK GOSUB Ende
BREAK ON
ON ERROR GOTO Fehler
INPUT "Drucker vorhanden (J/N) ";D$
IF LEFT$(UCASE$(D$),1)="J" THEN
Drucker=1
END IF
Version$="Ver. 2.02, 02. 3. 1989"
Drive$="DF0:"
Pfad$="MaxiDAT/Daten/"
PALETTE 0,1,1,1
PALETTE 1,0,0,0
PALETTE 2,1,0,0
PALETTE 3,0,0.5,1
IF Drucker=1 THEN
LPRINT
END IF
DIM Laenge(11),Bezeichnung$(11),In$(11),Ein$(11)
MENU 1,0,1,"Projekt "
MENU 1,1,1,"Datei einrichten "
MENU 1,2,1,"Daten eingeben "
MENU 1,3,1,"Datei benutzen "
MENU 1,4,1,"Neustart "
MENU 1,5,0,"-----------------"
MENU 1,6,1,"Ende "
MENU 2,0,Drucker,"Drucker "
MENU 2,1,1,"Alles ausdrucken MIT "
MENU 2,2,1,"Alles ausdrucken OHNE "
MENU 2,3,1,"Auswahl ausdrucken "
MENU 3,0,1,"Disk "
MENU 3,1,1,"Momentanes Directory ändern "
MENU 3,2,1,"Diskettenlaufwerk ändern "
MENU 3,3,1,"Inhalt anzeigen "
MENU 3,4,1,"Datei löschen "
MENU 4,0,1,"Grafik "
MENU 4,1,1,"Datei anlegen "
MENU 4,2,1,"Grafik zeichnen "
MENU 5,0,1,"Infos "
MENU 5,1,1,"Programminfo "
Hauptprogramm:
ON MENU GOSUB Men
MENU ON
WHILE 1
MENU ON
CLS
COLOR 1
PRINT " Dateiverwaltung AMIGA"
PRINT " -----------------------"
PRINT
PRINT " Version : ";Version$
PRINT
DATUM dtm$
PRINT " Heutiges Datum : ";dtm$
PRINT " Uhrzeit : ";TIME$
dummy$=INKEY$
SLEEP
dummy$=INKEY$
SLEEP
dummy$=INKEY$
WEND
REM *********************************************************
REM *** Dieses Unterprogramm wertet die MENU-Funktion aus ***
REM *** und verzweigt dann zu den ausgewählten Funktionen ***
REM *********************************************************
Men:
Titel=MENU(0)
Punkt=MENU(1)
IF Titel=1 THEN
IF Punkt=1 THEN
GOSUB Einrichten
END IF
IF Punkt=2 THEN
GOSUB Eingabe
END IF
IF Punkt=3 THEN
GOSUB Benutzen
END IF
IF Punkt=4 THEN
GOSUB Loeschen
END IF
IF Punkt=6 THEN
GOSUB Ende
END IF
END IF
IF Titel=2 THEN
IF Punkt=1 THEN
GOSUB DruckeAlles
END IF
IF Punkt=2 THEN
GOSUB DruckeAllesOHNE
END IF
IF Punkt=3 THEN
GOSUB DruckeAuswahl
END IF
END IF
IF Titel=3 THEN
IF Punkt=1 THEN
GOSUB ChangeDir
END IF
IF Punkt=2 THEN
GOSUB ChangeDrive
END IF
IF Punkt=3 THEN
GOSUB ZeigeDir
END IF
IF Punkt=4 THEN
GOSUB DeleteFile
END IF
END IF
IF Titel=4 THEN
IF Punkt=1 THEN
GOSUB GrafikdateiAnlegen
END IF
IF Punkt=2 THEN
GOSUB Zeichnen
END IF
END IF
IF Titel=5 THEN
GOSUB ProgrammInfo
END IF
RETURN
REM ********************************************
REM *** Hier beginnen die Programmfunktionen ***
REM ********************************************
Einrichten:
WHILE Jn$<>"J"
Gesamtlaenge = 0
CLS
MENU OFF
PRINT :PRINT
FOR I=1 TO 11
LOCATE I+2,1
PRINT USING "##";I
COLOR 1,2
LOCATE 1,1
PRINT "BITTE BEZEICHNUNG EINGEBEN. * = Ende. "
COLOR 1,0
LOCATE I+2,4
PRINT Bezeichnung$(I);
LOCATE I+2,4
LINE INPUT NeueBezeichnung$
NeueBezeichnung$=LEFT$(NeueBezeichnung$,40)
IF NeueBezeichnung$<>"" THEN
Bezeichnung$(I)=NeueBezeichnung$
END IF
BeLaenge=LEN(Bezeichnung$(I))
IF BeLaenge>Maxbezlaenge THEN
Maxbezlaenge=BeLaenge
END IF
LOCATE I+2,4
PRINT Bezeichnung$(I)
PRINT STRING$(20," ")
COLOR 1,2
LOCATE 1,1
PRINT "BITTE MAXIMALE LÄNGE DER EINGABE EINGEBEN."
COLOR 1,0
LOCATE I+2,42
PRINT Laenge(I)
LOCATE I+2,42
LINE INPUT Laenge$
NeueLaenge=INT(VAL(Laenge$))
IF NeueLaenge<>0 THEN
Laenge(I)=NeueLaenge
END IF
Fertig=0
IF Bezeichnung$(I)="*" THEN
Anzmsk=I
Fertig=1
END IF
IF Laenge(I)<=0 OR Laenge(I)>50 THEN
Laenge(I)=45
END IF
IF Fertig THEN
I=16
END IF
NEXT I
Anzmsk=Anzmsk-1
Jn$=""
LOCATE 1,1
PRINT "SIND DIESE EINGABEN RICHTIG (J für JA, N für NEIN) ?";
LINE INPUT "";Jn$
Jn$=LEFT$(UCASE$(Jn$),1)
WEND
Jn$="" ' fuer naechsten Aufruf loeschen
CLS
LOCATE 1,1
PRINT "Bitte geben Sie den Namen für die neue Datei ein !"
LINE INPUT Datinfnam$
Datinfnam$="Daten/"+Datinfnam$+".INFOS"
OPEN Datinfnam$ FOR OUTPUT AS #2
WRITE #2,Maxbezlaenge
WRITE #2,Anzmsk
WRITE #2,1 ' Satznummer
FOR I=1 TO Anzmsk
WRITE #2,Bezeichnung$(I)
WRITE #2,Laenge(I)
NEXT I
CLOSE #2
RETURN
Eingabe:
CLS
LINE INPUT "Name der Datei ? ";Datnam$
Datinfnam$=Drive$+Pfad$+Datnam$+".INFOS"
Datnam$=Drive$+Pfad$+Datnam$+".DATEN"
GOSUB LeseInfos
Satz=Satznummer
OPEN "r",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
WHILE Jn2$<>"N"
GOSUB Eing
FOR I=1 TO 11
LSET In$(I)=Ein$(I)
Ein$(I)=""
NEXT I
PUT #1,Satz
Satz=Satz+1
LOCATE 20,1
Jn2$=""
INPUT "Weiteren Datensatz eingeben ";Jn2$
Jn2$=LEFT$(UCASE$(Jn2$),1)
WEND
Jn2$=""
CLOSE #1
OPEN Datinfnam$ FOR OUTPUT AS #2
WRITE #2,Maxbezlaenge
WRITE #2,Anzmsk
WRITE #2,Satz
FOR I=1 TO Anzmsk
WRITE #2,Bezeichnung$(I)
WRITE #2,Laenge(I)
NEXT I
CLOSE #2
RETURN
Benutzen:
CLS
LINE INPUT "Name der Datei ? ";Datnam$
Datinfnam$=Drive$+Pfad$+Datnam$+".INFOS"
Datnam$=Drive$+Pfad$+Datnam$+".DATEN"
GOSUB LeseInfos
Msatz=Satznummer-1
OPEN "r",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
WHILE Co$<>"+" AND Co$<>"-" AND Co$<>"G" AND Co$<>"S" AND Co$<>"R" AND Co$<>"L" AND Co$<>"E" AND Co$<>"D" AND Co$<>"Q" AND Co$<>CHR$(139)
Co$=UCASE$(INKEY$)
WEND
IF Co$=CHR$(139) THEN
REM 139 ist der ASCII-Code der HELP-Taste
CLS
PRINT "Bedienungsinfos für den Datei-Lesen-Teil von MaxiDAT"
PRINT
PRINT
PRINT "<+> - Der numerisch nächste Datensatz wird angezeigt"
PRINT
PRINT "<-> - Der numerisch letzte Datensatz wird angezeigt"
PRINT
PRINT "<G> - Sie werden nach der Nummer des gewünschten
PRINT " Datensatzes gefragt"
PRINT
PRINT "<S> - Geben Sie die Nummer des Feldes und dann den"
PRINT " Suchbegriff an. MaxiDAT sucht vom momentanen"
PRINT " Datensatz bis zum Schluß."
PRINT
PRINT "<E> - Sie können die Daten des aktuellen Satzes edi-"
PRINT " tieren."
PRINT
PRINT "<L> - Der Inhalt des aktuellen Datensatzes wird gelöscht."
PRINT
PRINT "<D> - Der aktuelle Datensatz wird ausgedruckt."
PRINT
PRINT "<Q> - Sie verlassen diesen Programmteil und kommen zurück"
PRINT " zum Hauptmenü."
PRINT
PRINT "<HELP>- Diese Seite"
PRINT
PRINT
PRINT "--- Beliebige Taste ---"
SLEEP
SLEEP
END IF
IF Co$="S" THEN
LOCATE 25,1
INPUT "In welchem Feld ";Sfeld
LINE INPUT "Nach welchem Begriff ";Such$
FOR I=Satz TO Msatz
GET #1,I
IF INSTR(In$(Sfeld),Such$) THEN
Satz=I
I=Msatz+1
END IF
NEXT I
END IF
IF Co$="+" THEN
IF Satz<Msatz THEN
Satz=Satz+1
ELSE
BEEP
END IF
END IF
IF Co$="-" THEN
IF Satz>1 THEN
Satz=Satz-1
ELSE
BEEP
END IF
END IF
IF Co$="G" THEN
LOCATE 24,1
INPUT "Welche Satznummer (* - letzte Nummer) ";N$
IF N$="*" THEN
Satz=Msatz
ELSE
Satz=ABS(INT(VAL(N$)))
IF Satz=0 THEN
Satz=1
BEEP
END IF
IF Satz>Msatz THEN
Satz=Msatz
BEEP
END IF
END IF
END IF
IF Co$="L" THEN
FOR I=1 TO 11
LSET In$(I)=""
NEXT I
PUT #1,Satz
END IF
IF Co$="D" THEN
FOR I=1 TO Anzmsk
LPRINT Bezeichnung$(I);" : ";In$(I)
NEXT I
LPRINT
LPRINT
END IF
IF Co$="E" THEN
FOR I=1 TO 11
Ein$(I)=In$(I)
NEXT I
GOSUB Eing
FOR I=1 TO 11
LSET In$(I)=Ein$(I)
NEXT I
PUT #1,Satz
END IF
WEND
Co$=""
CLOSE #1
RETURN
Loeschen:
req$(1)="Beim Weitermachen werden"
req$(2)="alle Daten aus dem Speicher"
req$(3)="gelöscht !!!"
req$(4)="Wirklich weitermachen ???"
REQUESTER 50,50,4,req$()," Ja "," Nein ",req
IF req=1 THEN
RUN
END IF
WINDOW OUTPUT 2
RETURN
Ende:
req$(1)="Wollen Sie das Programm"
req$(2)=" wirklich beenden ?"
REQUESTER 50,50,2,req$()," Ja "," Nein ",req
IF req=1 THEN
WINDOW CLOSE 2
SCREEN CLOSE 1
SYSTEM
END IF
WINDOW OUTPUT 2
RETURN
DruckeAlles:
CLS
LINE INPUT "Dateiname ohne Pfadangabe -> ";Dnam$
Datnam$=Drive$+Pfad$+Dnam$+".DATEN"
Datinfnam$=Drive$+Pfad$+Dnam$+".INFOS"
GOSUB LeseInfos
LPRINT "Dateiname :";Dnam$
LPRINT "Anzahl Datensätze :";Satznummer-1
LPRINT "Ausgedruckt am :";
DATUM dtm$
LPRINT dtm$
LPRINT "Uhrzeit :";TIME$
LPRINT
LPRINT
CLS
OPEN "r",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
PRINT "Daten ausdrucken..."
PRINT "Aktueller Datensatz : "
FOR I=1 TO Satznummer-1
LOCATE 5,5
PRINT I
GET #1,I
FOR Ii=1 TO Anzmsk
LPRINT Bezeichnung$(Ii);" : ";
LPRINT In$(Ii)
NEXT Ii
LPRINT
NEXT I
CLOSE #1
LPRINT
LPRINT
LPRINT "--- Ende der Datei ---"
LPRINT
LPRINT
LPRINT
RETURN
DruckeAllesOHNE:
CLS
LINE INPUT "Dateiname ohne Pfadangabe -> ";Dnam$
Datnam$=Drive$+Pfad$+Dnam$+".DATEN"
Datinfnam$=Drive$+Pfad$+Dnam$+".INFOS"
GOSUB LeseInfos
OPEN "r",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
PRINT "Daten ausdrucken..."
PRINT "Aktueller Datensatz : "
FOR I=1 TO Satznummer-1
LOCATE 5,5
PRINT I
GET #1,I
FOR Ii=1 TO Anzmsk
LPRINT In$(Ii)
NEXT Ii
LPRINT
NEXT I
CLOSE #1
LPRINT
LPRINT
RETURN
DruckeAuswahl:
CLS
LINE INPUT "Dateiname ohne Pfadangabe -> ";Dnam$
INPUT "Satznummer ";Satz
Datnam$=Drive$+Pfad$+Dnam$+".DATEN"
Datinfnam$=Drive$+Pfad$+Dnam$+".INFOS"
GOSUB LeseInfos
LPRINT "Dateiname :";Datnam$
LPRINT "Satznummer ;";Satz
LPRINT
OPEN "r",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
WINDOW 6,"DIRECTORY VON DRIVE "+Drive$+", DIRECTORY "+Pfad$,,0,1
Inhalt$=Drive$+MID$(Pfad$,1,LEN(Pfad$)-1)
FILES Inhalt$
PRINT
PRINT "-- Taste drücken --"
SLEEP
SLEEP
WINDOW CLOSE 6
WINDOW OUTPUT 2
RETURN
DeleteFile:
LINE INPUT "Name (ohne Pfad- u. Laufwerksangabe) ";Dnam$
Dnam$=Drive$+Pfad$+Dnam$
req$(1)="Soll das File"
req$(2)=Dnam$
req$(3)="wirklich gelöscht werden ?"
REQUESTER 20,20,3,req$()," JA "," NEIN ",req
WINDOW OUTPUT 2
IF req=1 THEN
KILL Dnam$
END IF
RETURN
GrafikdateiAnlegen:
CLS
PRINT "Datei anlegen..."
LINE INPUT "Name (ohne Pfad- u. Laufwerksangabe) ";Nam$
Datinfnam$=Drive$+Pfad$+Nam$+".INFOS"
OPEN Datinfnam$ FOR OUTPUT AS #2
WRITE #2,11
WRITE #2,2
WRITE #2,1
WRITE #2,"Bezeichnung"
WRITE #2,5
WRITE #2,"Wert"
WRITE #2,5
CLOSE #2
RETURN
Zeichnen:
CLS
M=0
PRINT "Balkengrafik zeichnen"
LINE INPUT "Dateiname ? ";Nam$
Datnam$=Drive$+Pfad$+Nam$+".DATEN"
Datinfnam$=Drive$+Pfad$+Nam$+".INFOS"
GOSUB LeseInfos
CLS
IF gr THEN
ERASE B$
ERASE W
END IF
gr=1
INPUT "Höchster y-Wert ";M
CLS
DIM B$(Satznummer),W(Satznummer)
OPEN "R",#1,Datnam$,550
FIELD #1,Laenge(1) AS In$(1),Laenge(2) AS In$(2),Laenge(3) AS In$(3),Laenge(4) AS In$(4),Laenge(5) AS In$(5),Laenge(6) AS In$(6),Laenge(7) AS In$(7),Laenge(8) AS In$(8),Laenge(9) AS In$(9),Laenge(10) AS In$(10),Laenge(11) AS In$(11)
FOR I=1 TO Satznummer-1
GET #1,I
B$(I)=In$(1)
W(I)=VAL(In$(2))
NEXT I
LOCATE 1,1
PRINT M
LOCATE 16,1
PRINT M/2
ScaleY=350/M
ScaleX=INT(550/(Satznummer-1))
COLOR 3
FOR I=1 TO 640 STEP 10
LINE (I,0)-(I,400)
NEXT I
FOR I=1 TO 400 STEP 10
LINE (0,I)-(640,I)
NEXT I
FOR I=1 TO Satznummer-1
COLOR 1
LINE ((I*ScaleX)+3,300-W(I)*ScaleY)-(((I+1)*ScaleX)-3,350),,bf
COLOR 2,1
LOCATE 31,3+INT((I*ScaleX)/8)
PRINT B$(I);
NEXT I
COLOR 1,0
CLOSE #1
WHILE INKEY$=""
WEND
CLS
RETURN
ProgrammInfo:
CLS
PRINT "MaxiDAT - AMIGA"
PRINT "---------------"
PRINT
PRINT "Version 2.02, geschrieben März 1989 von Christoph Hust"
PRINT
PRINT "Änderung zu Version 2.01:"
PRINT "Grafikeinbindung"
PRINT
PRINT
PRINT "Wenn ihnen das Programm gefällt, bitte senden sie ungefähr 20 DM an"
PRINT "folgende Adresse:"
PRINT
PRINT " CHRISTOPH HUST"
PRINT " MAINZER STRASSE 30"
PRINT " D-5407 BOPPARD 1"
PRINT
PRINT "MAXIDAT IST EIN PUBLIC DOMAIN PROGRAMM. ES DARF FREI KOPIERT WERDEN."